/**
 * @file gString.h
 * @author your name (you@domain.com)
 * @brief 
 * @version 0.1
 * @date 2024-10-25
 * 
 * @copyright Copyright (c) 2024
 * 
 */
#ifndef _GSTRING_H
#define _GSTRING_H



enum kmp_return_type
{
    KMP_RETURN_HEAD,
    KMP_RETURN_END,
};
typedef enum kmp_return_type kmp_return_type_t;

enum string_to_hex_type
{
    CONVERT_BIG_ENDIAN,
    CONVERT_LITTLE_ENDIAN,
};
typedef enum string_to_hex_type string_to_hex_type_t;

#ifdef __cplusplus
extern "C"
{
#endif

extern void gStringKmpNext(void *data, int data_len, void *next);
extern char *gStringCompare(char *src, char *dst);
extern char *gKmpStringCompareE(char *src, char *dst, void *next);
extern char *gKmpStringCompareH(char *src, char *dst, void *next);
extern char *gKmpCommonCompareE(void *src, int src_len, void *dst, int dst_len, void *next);
extern char *gKmpCommonCompareH(void *src, int src_len, void *dst, int dst_len, void *next);
extern int gHexToString(void *src, int src_len, void *dst);
extern int gStringToHexBigendian(void *src,void *dst);
extern int gStringToHexLittleendian(void *src,void *dst);
extern void gStringConvertUpper(void *src, void *dst);
extern void gStringConvertLowercase(void *src,void *dst);

#ifdef __cplusplus
}
#endif

#endif
